﻿using SupportLayer.Objetos.Outros;
using System;
using System.Collections.Generic;
using System.Linq;
using Util.Repository;

namespace DataLayer.Outros
{
	public class ControllerOutros
	{
		//	private ContextoBD Contexto;

		//	public ControllerOutros(ContextoBD ctx)
		//	{
		//		Contexto = ctx;
		//	}

		//	#region Banners
		//	public void InsertBanner(BannerClass Banner)
		//	{
		//		try
		//		{
		//			Repository<BannerClass> RepoBanner = new Repository<BannerClass>(Contexto);
		//			RepoBanner.Insert(Banner);
		//			RepoBanner.SaveChanges();
		//		}
		//		catch
		//		{
		//			throw;
		//		}
		//	}
		//	public BannerClass SelectBanner(Int16 ordem)
		//	{
		//		try
		//		{
		//			return new Repository<BannerClass>(Contexto).Select(a => a.Ordem == ordem).SingleOrDefault();
		//		}
		//		catch (Exception)
		//		{
		//			throw;
		//		}
		//	}
		//	public List<BannerClass> GetBanners()
		//	{
		//		try
		//		{
		//			return new Repository<BannerClass>(Contexto).Select(a => a.ID == a.ID).OrderBy(b => b.Ordem).ToList();
		//		}
		//		catch (Exception)
		//		{
		//			throw;
		//		}
		//	}
		//	public void BannerChangeOrders(int bannerID, bool goingUp)
		//	{
		//		try
		//		{
		//			Repository<BannerClass> RepoBanner = new Repository<BannerClass>(Contexto);
		//			BannerClass banner = RepoBanner.Select(a => a.ID == bannerID).SingleOrDefault();

		//			if (banner == null)
		//				throw new ApplicationException("Banner não encontrado!");

		//			Int16 pos = banner.Ordem;
		//			BannerClass bannerAfetado = new BannerClass();

		//			if (goingUp)
		//			{
		//				bannerAfetado = RepoBanner.Select(a => a.Ordem == (pos - 1)).SingleOrDefault();
		//				bannerAfetado.Ordem = Convert.ToInt16(bannerAfetado.Ordem + 1);
		//				banner.Ordem = Convert.ToInt16(banner.Ordem - 1);
		//			}
		//			else
		//			{
		//				bannerAfetado = RepoBanner.Select(a => a.Ordem == (pos + 1)).SingleOrDefault();
		//				bannerAfetado.Ordem = Convert.ToInt16(bannerAfetado.Ordem - 1);
		//				banner.Ordem = Convert.ToInt16(banner.Ordem + 1);
		//			}

		//			RepoBanner.Update(banner);
		//			RepoBanner.SaveChanges();
		//			RepoBanner.Update(bannerAfetado);
		//			RepoBanner.SaveChanges();

		//		}
		//		catch (Exception)
		//		{
		//			throw;
		//		}
		//	}
		//	public int BannerGetLast()
		//	{
		//		try
		//		{
		//			return new Repository<BannerClass>(Contexto).Select(a => a.ID == a.ID).ToList().Last().Ordem;
		//		}
		//		catch (Exception)
		//		{
		//			throw;
		//		}
		//	}
		//	public void DeleteBanner(int bannerID)
		//	{
		//		try
		//		{
		//			Repository<BannerClass> RepoBanner = new Repository<BannerClass>(Contexto);
		//			BannerClass _banner = RepoBanner.Select(a => a.ID == bannerID).SingleOrDefault();

		//			if (_banner == null)
		//				throw new ApplicationException("Banner não encontrado! Tente novamente.");

		//			int ordem = _banner.Ordem;

		//			for (Int16 iOrdem = 0; iOrdem < RepoBanner.Count(a => a.ID == a.ID); iOrdem++)
		//			{
		//				if (iOrdem <= ordem)
		//					continue;

		//				BannerClass banner = new BannerClass();
		//				banner = SelectBanner(iOrdem);

		//				banner.Ordem = Convert.ToInt16(banner.Ordem - 1);

		//				RepoBanner.Update(banner);
		//			}

		//			RepoBanner.Delete(_banner);
		//			RepoBanner.SaveChanges();
		//		}
		//		catch (Exception)
		//		{

		//			throw;
		//		}
		//	}
		//	#endregion Banners

		//	#region Contato
		//	public void InsertContato(ContatoClass Contato)
		//	{
		//		try
		//		{
		//			Repository<ContatoClass> RepoContato = new Repository<ContatoClass>(Contexto);
		//			RepoContato.Insert(Contato);
		//			RepoContato.SaveChanges();
		//		}
		//		catch (Exception)
		//		{
		//			throw;
		//		}
		//	}
		//	#endregion Contato
		//}
	}
}